python -m pip install easymaker
アプリケーションキー(Appkey)と秘密鍵(Secret key)はコンソール右上のURL & Appkeyメニューで確認できます。 有効にしたAI EasyMaker商品のアプリケーションキー、秘密鍵、リージョン情報を入力します。 AI EasyMaker SDKを使用するには初期化コードが必要です。
import easymaker
easymaker.init(
appkey='EASYMAKER_APPKEY',
region='kr1',
secret_key='EASYMAKER_SECRET_KEY',
)
学習を作成する前に、学習を分類できる実験の作成が必要です。
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
experiment_name | String | 必須 | なし | 最大50文字 | 実験名 |
experiment_description | String | 任意 | なし | 最大255文字 | 実験の説明 |
wait | Boolean | 任意 | True | True, False | True:実験の作成が完了した後に実験IDを返す。False:作成リクエスト後、すぐに実験IDを返す |
experiment_id = easymaker.Experiment().create(
experiment_name='experiment_name',
experiment_description='experiment_description',
# wait=False,
)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
experiment_id | String | 必須 | なし | 最大36文字 | 実験ID |
easymaker.Experiment().delete(experiment_id)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
experiment_id | String | 必須 | なし | なし | 実験ID |
training_name | String | 必須 | なし | 最大50文字 | 学習名 |
training_description | String | 任意 | なし | 最大255文字 | 学習の説明 |
train_image_name | String | 必須 | なし | なし | 学習に使用されるイメージ名(CLIで照会可能) |
train_instance_name | String | 必須 | なし | なし | インスタンスタイプ名(CLIで照会可能) |
distributed_node_count | Integer | 必須 | なし | 1~10 | 分散学習を適用するノード数 |
use_torchrun | Boolean | 選択 | False | True, False | torchrunの使用有無、Pytorchイメージでのみ使用可 |
nproc_per_node | Integer | use_torchrun Trueの場合は必須 | 1 | 1~(CPU数またはGPU数) | ノードあたりのプロセス数、 use_torchrunを使用する場合は必ず設定しなければならない値 |
data_storage_size | Integer | Obejct Storageを使用する場合は必須 | なし | 300~10000 | 学習に必要なデータをダウンロードする記憶領域サイズ(単位: GB)、NAS使用時は不要 |
algorithm_name | String | NHN Cloud提供アルゴリズムを使用する場合は必須 | なし | 最大64文字 | アルゴリズム名(CLIで照会可能) |
source_dir_uri | String | 独自アルゴリズムを使用する場合は必須 | なし | 最大255文字 | 学習に必要なファイルがあるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
entry_point | String | 独自アルゴリズムを使用する場合は必須 | なし | 最大255文字 | source_dir_uri内で最初に実行されるPythonファイル情報 |
model_upload_uri | String | 必須 | なし | 最大255文字 | 学習完了したモデルがアップロードされるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
check_point_input_uri | String | 任意 | なし | 最大255文字 | 入力チェックポイントファイルパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
check_point_upload_uri | String | 任意 | なし | 最大255文字 | チェックポイントファイルがアップロードされるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
timeout_hours | Integer | 任意 | 720 | 1~720 | 最大学習時間(単位:時間) |
hyperparameter_list | Array | 任意 | なし | 最大100個 | ハイパーパラメータ情報(hyperparameterKey/hyperparameterValueで構成) |
hyperparameter_list[0].hyperparameterKey | String | 任意 | なし | 最大255文字 | ハイパーパラメータキー |
hyperparameter_list[0].hyperparameterValue | String | 任意 | なし | 最大1000文字 | ハイパーパラメータ値 |
dataset_list | Array | 任意 | なし | 最大10個 | 学習に使用されるデータセット情報(datasetName/dataUriで構成) |
dataset_list[0].datasetName | String | 任意 | なし | 最大36文字 | データ名 |
dataset_list[0].datasetUri | String | 任意 | なし | 最大255文字 | データパス |
tag_list | Array | 任意 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 任意 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 任意 | なし | 最大255文字 | タグ値 |
use_log | Boolean | 任意 | False | True、False | Log & Crash Searchサービスにログを残すかどうか |
wait | Boolean | 任意 | True | True、False | True:学習作成が完了した後に学習IDを返す。False:作成リクエスト後すぐに学習IDを返す |
training_id = easymaker.Training().run(
experiment_id=experiment_id,
training_name='training_name',
training_description='training_description',
train_image_name='Ubuntu 18.04 CPU TensorFlow Training',
train_instance_name='m2.c4m8',
distributed_node_count=1,
data_storage_size=300, # minimum size :300GB
source_dir_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{soucre_download_path}',
entry_point='training_start.py',
hyperparameter_list=[
{
"hyperparameterKey":"epochs",
"hyperparameterValue":"10",
},
{
"hyperparameterKey":"batch-size",
"hyperparameterValue":"30",
}
],
timeout_hours=100,
model_upload_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{model_upload_path}',
check_point_input_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{checkpoint_input_path}',
check_point_upload_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{checkpoint_upload_path}',
dataset_list=[
{
"datasetName":"train",
"dataUri":"obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{train_data_download_path}"
},
{
"datasetName":"test",
"dataUri":"obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{test_data_download_path}"
}
],
tag_list=[
{
"tagKey":"tag1",
"tagValue":"test_tag_1",
},
{
"tagKey":"tag2",
"tagValue":"test_tag_2",
}
],
use_log=True,
# wait=False,
)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
training_id | String | 必須 | なし | 最大36文字 | 学習ID |
easymaker.Training().delete(training_id)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
experiment_id | String | 必須 | なし | なし | 実験ID |
hyperparameter_tuning_name | String | 必須 | なし | 最大50文字 | ハイパーパラメータチューニング名 |
hyperparameter_tuning_description | String | 任意 | なし | 最大255文字 | ハイパーパラメータチューニングについての説明 |
image_name | String | 必須 | なし | なし | ハイパーパラメータチューニングに使用されるイメージ名(CLIで照会可能) |
instance_name | String | 必須 | なし | なし | インスタンスタイプ名(CLIで照会可能) |
distributed_node_count | Integer | 必須 | 1 | distributed_node_countとparallel_trial_countの積が10以下 | ハイパーパラメータチューニングで各学習ごとに分散学習を適用するノード数 |
parallel_trial_count | Integer | 必須 | 1 | distributed_node_countとparallel_trial_countの積が10以下 | ハイパーパラメータチューニングで並列実行する学習数 |
use_torchrun | Boolean | 選択 | False | True, False | torchrunの使用有無、Pytorchイメージでのみ使用可 |
nproc_per_node | Integer | use_torchrun Trueの場合は必須 | 1 | 1~(CPU数またはGPU数) | ノードあたりのプロセス数、 use_torchrunを使用する場合は必ず設定しなければならない値 |
data_storage_size | Integer | Obejct Storageを使用する場合は必須 | なし | 300~10000 | ハイパーパラメータチューニングに必要なデータをダウンロードする記憶領域サイズ(単位:GB)、NAS使用時は不要 |
algorithm_name | String | NHN Cloud提供アルゴリズムを使用する場合は必須 | なし | 最大64文字 | アルゴリズム名(CLIで照会可能) |
source_dir_uri | String | 独自アルゴリズムを使用する場合は必須 | なし | 最大255文字 | ハイパーパラメータチューニングに必要なファイルがあるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
entry_point | String | 独自アルゴリズムを使用する場合は必須 | なし | 最大255文字 | source_dir_uri内で最初に実行されるPythonファイル情報 |
model_upload_uri | String | 必須 | なし | 最大255文字 | ハイパーパラメータチューニングで学習完了したモデルがアップロードされるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
check_point_input_uri | String | 任意 | なし | 最大255文字 | 入力チェックポイントファイルのパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
check_point_upload_uri | String | 任意 | なし | 最大255文字 | チェックポイントファイルがアップロードされるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
timeout_hours | Integer | 任意 | 720 | 1~720 | 最大ハイパーパラメータチューニング時間(単位:時間) |
hyperparameter_spec_list | Array | 任意 | なし | 最大100個 | ハイパーパラメータのスペック情報 |
hyperparameter_spec_list[0]. hyperparameterName |
String | 任意 | なし | 最大255文字 | ハイパーパラメータ名 |
hyperparameter_spec_list[0]. hyperparameterTypeCode |
String | 任意 | なし | INT、DOUBLE、DISCRETE、CATEGORICAL | ハイパーパラメータタイプ |
hyperparameter_spec_list[0]. hyperparameterMinValue |
Integer/Double | hyperparameterTypeCodeがINT、DOUBLEの場合は必須 | なし | なし | ハイパーパラメータ最小値 |
hyperparameter_spec_list[0]. hyperparameterMaxValue |
Integer/Double | hyperparameterTypeCodeがINT、DOUBLEの場合は必須 | なし | なし | ハイパーパラメータ最大値 |
hyperparameter_spec_list[0]. hyperparameterStep |
Integer/Double | hyperparameterTypeCodeがINT、DOUBLEでGRID戦略の場合は必須 | なし | なし | "Grid"チューニング戦略を使用する際のハイパーパラメータ値の変化サイズ |
hyperparameter_spec_list[0]. hyperparameterSpecifiedValues |
String | hyperparameterTypeCodeがDISCRETE、CATEGORICALの場合は必須 | なし | 最大3000文字 | 決められたハイパーパラメータリスト(, で区切られた文字列や数字) |
dataset_list | Array | 任意 | なし | 最大10個 | ハイパーパラメータチューニングに使用されるデータセット情報(datasetName/dataUriで構成) |
dataset_list[0].datasetName | String | 任意 | なし | 最大36文字 | データ名 |
dataset_list[0].datasetUri | String | 任意 | なし | 最大255文字 | データパス |
metric_list | Array | 独自アルゴリズムを使用する場合は必須 | なし | 最大10個(指標名で構成された文字列リスト) | 学習コードが出力するログの中からどの指標を収集するか定義します。 |
metric_regex | String | 独自アルゴリズムを使用する場合は任意 | ([\w\ | -]+)\s=\s([+-]?\d*(.\d+)?([Ee][+-]?\d+)?) | 最大255文字 |
objective_metric_name | String | 独自アルゴリズムを使用する場合は必須 | なし | 最大36文字、metric_listの中で1つ | どの指標の最適化が目標なのか選択します。 |
objective_type_code | String | 独自アルゴリズムを使用する場合は必須 | なし | MINIMIZE、MAXIMIZE | 目標指標最適化タイプを選択します。 |
objective_goal | Double | 任意 | なし | なし | 目標指標がこの値に達するとチューニング作業が終了します。 |
max_failed_trial_count | Integer | 任意 | なし | なし | 失敗した学習の最大数を定義します。失敗した学習の数がこの値に達するとチューニングが失敗となり終了します。 |
max_trial_count | Integer | 任意 | なし | なし | 最大学習数を定義します。自動実行された学習の数がこの値に達するまでチューニングが実行されます。 |
tuning_strategy_name | String | 必須 | なし | なし | どの戦略を使用して最適なハイパーパラメータを探すか選択します。 |
tuning_strategy_random_state | Integer | 任意 | なし | なし | 乱数作成を決定します。再現可能な結果のために固定された値で指定します。 |
early_stopping_algorithm | String | 必須 | なし | EARLY_STOPPING_ALGORITHM. MEDIAN |
学習を継続してもモデルがそれ以上良くならない場合、早期に学習を終了します。 |
early_stopping_min_trial_count | Integer | 必須 | 3 | なし | 中間値を計算する際に、いくつの学習から目標指標値を取得するか定義します。 |
early_stopping_start_step | Integer | 必須 | 4 | なし | 何番目の学習段階から早期終了を適用するか設定します。 |
tag_list | Array | 任意 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 任意 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 任意 | なし | 最大255文字 | タグ値 |
use_log | Boolean | 任意 | False | True、False | Log & Crash Searchサービスにログを残すかどうか |
wait | Boolean | 任意 | True | True、False | True:ハイパーパラメータチューニングの作成完了後、ハイパーパラメータチューニングIDを返却、False:作成リクエスト後すぐに学習IDを返却 |
hyperparameter_tuning_id = easymaker.HyperparameterTuning().run(
experiment_id=experiment_id,
hyperparameter_tuning_name='hyperparameter_tuning_name',
hyperparameter_tuning_description='hyperparameter_tuning_description',
image_name='Ubuntu 18.04 CPU TensorFlow Training',
instance_name='m2.c8m16',
distributed_node_count=1,
parallel_trial_count=1,
data_storage_size=300,
source_dir_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{soucre_download_path}',
entry_point='training_start.py',
hyperparameter_spec_list=[
{
"hyperparameterName": "learning_rate",
"hyperparameterTypeCode": easymaker.HYPERPARAMETER_TYPE_CODE.DOUBLE,
"hyperparameterMinValue": "0.01",
"hyperparameterMaxValue": "0.05",
},
{
"hyperparameterName": "epochs",
"hyperparameterTypeCode": easymaker.HYPERPARAMETER_TYPE_CODE.INT,
"hyperparameterMinValue": "100",
"hyperparameterMaxValue": "1000",
}
],
timeout_hours=10,
model_upload_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{model_upload_path}',
check_point_input_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{checkpoint_input_path}',
check_point_upload_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{checkpoint_upload_path}',
dataset_list=[
{
"datasetName": "train",
"dataUri": "obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{train_data_download_path}"
},
{
"datasetName": "test",
"dataUri": "obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{test_data_download_path}"
}
],
metric_list=["val_loss", "loss", "accuracy"],
metric_regex='([\w|-]+)\s*:\s*([+-]?\d*(\.\d+)?([Ee][+-]?\d+)?)',
objective_metric_name="val_loss",
objective_type_code=easymaker.OBJECTIVE_TYPE_CODE.MINIMIZE,
objective_goal=0.01,
max_failed_trial_count=3,
max_trial_count=10,
tuning_strategy_name=easymaker.TUNING_STRATEGY.BAYESIAN_OPTIMIZATION,
tuning_strategy_random_state=1,
early_stopping_algorithm=easymaker.EARLY_STOPPING_ALGORITHM.MEDIAN,
early_stopping_min_trial_count=3,
early_stopping_start_step=4,
tag_list=[
{
"tagKey": "tag1",
"tagValue": "test_tag_1",
}
],
use_log=True,
# wait=False,
)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
hyperparameter_tuning_id | String | 必須 | なし | 最大36文字 | ハイパーパラメータチューニングID |
easymaker.HyperparameterTuning().delete(hyperparameter_tuning_id)
学習ID値でモデルの作成をリクエストできます。 モデルはエンドポイント作成時に使用されます。
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
training_id | String | hyperparameter_tuning_idがない場合は必須 | なし | なし | モデルとして作成する学習ID |
hyperparameter_tuning_id | String | training_idがない場合は必須 | なし | なし | モデルとして作成するハイパーパラメータチューニングID(最高学習で作成済み) |
model_name | String | 必須 | なし | 最大50文字 | モデル名 |
model_description | String | 選択 | なし | 最大255文字 | モデルの説明 |
tag_list | Array | 選択 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 選択 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 選択 | なし | 最大255文字 | タグ値 |
model_id = easymaker.Model().create(
training_id=training_id, # or hyperparameter_tuning_id=hyperparameter_tuning_id,
model_name='model_name',
model_description='model_description',
)
学習IDがなくても、モデルが保存されたパス情報とフレームワークの種類を入力してモデルを作成できます。
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
framework_code | Enum | 必須 | なし | easymaker.TENSORFLOW、 easymaker.PYTORCH | 学習に使用されたフレームワーク情報 |
model_uri | String | 必須 | なし | 最大255文字 | モデルファイルパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
model_name | String | 必須 | なし | 最大50文字 | モデル名 |
model_description | String | 任意 | なし | 最大255文字 | モデルの説明 |
tag_list | Array | 任意 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 任意 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 任意 | なし | 最大255文字 | タグ値 |
model_id = easymaker.Model().create_by_model_uri(
framework_code=easymaker.TENSORFLOW,
model_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{model_upload_path}',
model_name='model_name',
model_description='model_description',
)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
model_id | String | 必須 | なし | 最大36文字 | モデルID |
easymaker.Model().delete(model_id)
エンドポイント作成時に基本ステージが作成されます。
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
endpoint_name | String | 必須 | なし | 最大50文字 | エンドポイント名 |
endpoint_description | String | 任意 | なし | 最大255文字 | エンドポイントの説明 |
endpoint_instance_name | String | 必須 | なし | なし | エンドポイントに使用されるインスタンスタイプ名 |
endpoint_instance_count | Integer | 任意 | 1 | 1~10 | エンドポイントに使用されるインスタンス数 |
endpoint_model_resource_list | Array | 必須 | なし | 最大10個 | ステージに使用されるリソース情報 |
endpoint_model_resource_list[0].modelId | String | 必須 | なし | なし | ステージリソースで作成するモデルID |
endpoint_model_resource_list[0].apigwResourceUri | String | 必須 | なし | 最大255文字 | /で始まるAPI Gatewayリソースパス |
endpoint_model_resource_list[0].podCount | Integer | 必須 | なし | 1~100 | ステージリソースに使用されるPod数 |
endpoint_model_resource_list[0].description | String | 任意 | なし | 最大255文字 | ステージリソースの説明 |
tag_list | Array | 任意 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 任意 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 任意 | なし | 最大255文字 | タグ値 |
use_log | Boolean | 任意 | False | True, False | Log & Crash Searchサービスにログを残すかどうか |
wait | Boolean | 任意 | True | True, False | True:エンドポイントの作成が完了した後にエンドポイントIDを返す。False:エンドポイントリクエスト後、すぐにエンドポイントIDを返す |
endpoint = easymaker.Endpoint()
endpoint_id = endpoint.create(
endpoint_name='endpoint_name',
endpoint_description='endpoint_description',
endpoint_instance_name='c2.c16m16',
endpoint_instance_count=1,
endpoint_model_resource_list=[
{
'modelId': model_id,
'apigwResourceUri': '/predict',
'podCount': 1,
'description': 'stage_resource_description'
}
],
use_log=True,
# wait=False,
)
作成しておいたエンドポイントの使用
endpoint = easymaker.Endpoint()
既存エンドポイントに新規ステージを追加できます。
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
stage_name | String | 必須 | なし | 最大50文字 | ステージ名 |
stage_description | String | 任意 | なし | 最大255文字 | ステージの説明 |
endpoint_instance_name | String | 必須 | なし | なし | エンドポイントに使用されるインスタンスタイプ名 |
endpoint_instance_count | Integer | 任意 | 1 | 1~10 | エンドポイントに使用されるインスタンス数 |
endpoint_model_resource_list | Array | 必須 | なし | 最大10個 | ステージに使用されるリソース情報 |
endpoint_model_resource_list[0].modelId | String | 必須 | なし | なし | ステージリソースで作成するモデルID |
endpoint_model_resource_list[0].apigwResourceUri | String | 必須 | なし | 最大255文字 | /で始まるAPI Gatewayリソースパス |
endpoint_model_resource_list[0].podCount | Integer | 必須 | なし | 1~100 | ステージリソースに使用されるPod数 |
endpoint_model_resource_list[0].description | String | 任意 | なし | 最大255文字 | ステージリソースの説明 |
tag_list | Array | 任意 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 任意 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 任意 | なし | 最大255文字 | タグ値 |
use_log | Boolean | 任意 | False | True、False | Log & Crash Searchサービスにログを残すかどうか |
wait | Boolean | 任意 | True | True, False | True:ステージの作成が完了した後にステージIDを返す。False:ステージリクエスト後、すぐにステージIDを返す |
stage_id = endpoint.create_stage(
stage_name='stage01', # 30文字以内小文字/数字
stage_description='test endpoint',
endpoint_instance_name='c2.c16m16',
endpoint_instance_count=1,
endpoint_model_resource_list=[
{
'modelId': model_id,
'apigwResourceUri': '/predict',
'podCount': 1,
'description': 'stage_resource_description'
}
],
use_log=True,
# wait=False,
)
基本ステージにインファレンス
# 基本ステージ情報照会
endpoint_stage_info = endpoint.get_default_endpoint_stage()
print(f'endpoint_stage_info : {endpoint_stage_info}')
# ステージを指定してインファレンスリクエスト
input_data = [6.0, 3.4, 4.5, 1.6]
endpoint.predict(endpoint_stage_info=endpoint_stage_info,
model_id=model_id,
json={'instances': [input_data]})
特定ステージを指定してインファレンス
# ステージ情報照会
endpoint_stage_info = endpoint.get_endpoint_stage_by_id(endpoint_stage_id=stage_id)
print(f'endpoint_stage_info : {endpoint_stage_info}')
# ステージを指定してインファレンスリクエスト
input_data = [6.0, 3.4, 4.5, 1.6]
endpoint.predict(endpoint_stage_info=endpoint_stage_info,
model_id=model_id,
json={'instances': [input_data]})
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
endpoint_id | String | 必須 | なし | 最大36文字 | エンドポイントID |
endpoint.Endpoint().delete_endpoint(endpoint_id)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
stage_id | String | 必須 | なし | 最大36文字 | ステージID |
endpoint.Endpoint().delete_endpoint_stage(stage_id)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
batch_inference_name | String | 必須 | なし | 最大50文字 | バッチ推論名前 |
instance_count | Integer | 必須 | なし | 1~10 | バッチ推論に使用するインスタンス数 |
timeout_hours | Integer | 選択 | 720 | 1~720 | 最大バッチ推論時間(単位:時間) |
instance_name | String | 必須 | なし | なし | インスタンスタイプ名(CLIで照会可能) |
model_name | String | 必須 | なし | なし | モデル名(CLIで照会可能) |
pod_count | Integer | 必須 | なし | 1~100 | 分散学習を適用するノード数 |
batch_size | Integer | 必須 | なし | 1~1000 | 同時に処理されるデータサンプルの数 |
inference_timeout_seconds | Integer | 必須 | なし | 1~1200 | 単一推論リクエストの最大許容時間 |
input_data_uri | String | 必須 | なし | 最大255文字 | 入力データファイルのパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
input_data_type | String | 必須 | なし | JSON, JSONL | 入力データのタイプ |
include_glob_pattern | String | 選択 | なし | 最大255文字 | ファイルセットを入力データに含めるGlobパターン |
exclude_glob_pattern | String | 選択 | なし | 最大255文字 | ファイルセットを入力データから除外するGlobパターン |
output_upload_uri | String | 必須 | なし | 最大255文字 | バッチ推論結果ファイルがアップロードされるパス(NHN Cloud Object StorageまたはNHN Cloud NAS) |
data_storage_size | Integer | 必須 | なし | 300~10000 | バッチ推論に必要なデータをダウンロードする記憶領域のサイズ(単位: GB) |
description | String | 選択 | なし | 最大255文字 | バッチ推論の説明 |
tag_list | Array | 選択 | なし | 最大10個 | タグ情報 |
tag_list[0].tagKey | String | 選択 | なし | 最大64文字 | タグキー |
tag_list[0].tagValue | String | 選択 | なし | 最大255文字 | タグ値 |
use_log | Boolean | 選択 | False | True, False | Log & Crash Searchサービスにログを残すかどうか |
wait | Boolean | 選択 | True | True, False | True:学習作成が完了した後に学習IDを返す。False:作成リクエスト後、すぐに学習IDを返す |
batch_inference_id = easymaker.BatchInference().run(
batch_inference_name='batch_inference_name',
instance_count=1,
timeout_hours=100,
instance_name='m2.c4m8',
model_name='model_name',
pod_count=1,
batch_size=32,
inference_timeout_seconds=120,
input_data_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{input_data_path}',
input_data_type='JSONL',
include_glob_pattern=None,
exclude_glob_pattern=None,
output_upload_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{output_upload_path}',
data_storage_size=300, # minimum size : 300GB
description='description',
tag_list=[
{
"tagKey": "tag1",
"tagValue": "test_tag_1",
},
{
"tagKey": "tag2",
"tagValue": "test_tag_2",
}
],
use_log=True,
# wait=False,
)
[Parameter]
名前 | タイプ | 必須かどうか | デフォルト値 | 有効範囲 | 説明 |
---|---|---|---|---|---|
batch_inference_id | String | 必須 | なし | 最大36文字 | バッチ推論ID |
easymaker.BatchInference().delete(batch_inference_id)
easymaker_logger = easymaker.logger(logncrash_appkey='log&crash_product_app_key')
easymaker_logger.send('test log meassage') # Output to stdout & send log to log&crash product
easymaker_logger.send(log_message='log meassage',
log_level='ERROR', # default:INFO
project_version='2.0.0', # default:1.0.0
parameters={'serviceType':'EasyMakerSample'}) # Add custom parameters
Object Storage商品にファイルをアップロードし、ダウンロードする機能を提供します。
easymaker.upload(
easymaker_obs_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_{tenant_id}/{container_name}/{upload_path}',
local_path='./local_dir',
username='userId@nhn.com',
password='nhn_object_storage_api_password'
)
easymaker.download(
easymaker_obs_uri='obs://kr1-api-object-storage.nhncloudservice.com/v1/AUTH_00000000000000000000000000000000/SDK/sample/source_dir',
download_dir_path='./download_dir',
username='userId@nhn.com',
password='nhn_object_storage_api_password'
)
アプリケーションキー、秘密鍵、リージョン情報を知っている場合は、コンソールにアクセスせずにPython CLIを介してさまざまな情報を確認できます。
機能 | コマンド |
---|---|
Instance typeリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -instance |
Imageリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -image |
Algorithmリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -algorithm |
Experimentリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -experiment |
Trainingリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -training |
Hyperparameter tuningリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -tuning |
Modelリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -model |
Endpointリスト照会 | python -m easymaker --region kr1 --appkey EM_APPKEY --secret_key EM_SECRET_KEY -endpoint |